package com.xy.common.util;

import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import com.xy.core.model.Tdictionarytype;
import com.xy.core.model.Tdictionay;

public class DictUtils {
	// return DictUtils.getDictByType(DictUtils.QJSCUSER_GENDER);
	// 字典表--类型
	public static String TDICTIONAY_TYPE = "1";

	// 用户表--性别
	public static String TUSER_SEX = "2";

	// 会员信息--会员类别
	public static String TMEMBER_USERTYPE = "19";
	// 会员信息--性别
	public static String TMEMBER_SEX = "2";
	// 会员信息--学历
	public static String TMEMBER_EDUDEGREE = "4";
	// 会员信息--婚姻状况
	public static String TMEMBER_MARRIAGE = "5";
	// 会员信息--公司行业
	public static String TMEMBER_WORKTYPE = "6";
	// 会员信息--状态
	public static String TMEMBER_STATUS = "23";
	// 会员信息--公司规模
	public static String TMEMBER_CORPSIZE = "10";
	// 会员信息--央行征信（0：无不良，1：有不良）
	public static String TMEMBER_CBCREDIT = "7";
	// 会员信息--固定资产（0：无房无铺，1：有房无房贷，2：有房有房贷，3：自购店铺）
	public static String TMEMBER_FIXEDASSETS = "8";
	// 会员信息--流动资产（0：无车，1：有车无车贷，2：有车有车贷，3：有金融资产）
	public static String TMEMBER_CURRENTASSETS = "9";
	// 会员银行卡信息表--是否默认提现银行卡（1：是，0：否）
	public static String TMEMBERBANKCARD_ISWITHDRAW = "3";
	// 会员资产账户信息表--账户状态（0：无效，1：有效，2：提现冻结）
	public static String TMEMBERASSETACCOUNT_STATUS = "20";
	// 会员资产账户交易明细表--交易方向（-1：借（出金），1：贷（入金））
	public static String TMEMBERASSETACCOUNTDETAILS_BORROWING = "14";
	// 会员资产账户交易明细表--交易类型
	public static String TMEMBERASSETACCOUNTDETAILS_TRANTYPE = "15";
	// 会员不良信用记录表--不良记录等级（1：一般，2：严重，3：恶劣）
	public static String TMEMBERBADCREDIT_BADCREDITLEVEL = "21";
	// 会员不良信用记录表--不良记录状态（1：未消除，0：已消除）
	public static String TMEMBERBADCREDIT_STATUS = "22";
	// 融资标的信息表--还款周期（1：按月还款）
	public static String TFINANCEINFO_REPAYMENTPERIOD = "11";
	// 融资标的信息表--还款方式（1：等额本息，2：等额本金）
	public static String TFINANCEINFO_REPAYMENTMOD = "12";
	// 融资标的信息表--融资标的状态（见说明）
	public static String TFINANCEINFO_STATUS = "13";
	// 投标记录表--是否已全部转让（1：是，0：否）
	public static String TTENDERRECORD_ISTRANSFER = "3";
	// 转让标的信息表--转让标的状态（见说明）
	public static String TTRANSFERINFO_STATUS = "16";
	// 转让标的信息表--是否已全部转让（1：是，0：否）
	public static String TTRANSFERINFO_ISTRANSFER = "3";
	// 提现申请表--提现状态（1：成功，0：失败，2：我方处理中，3：第三方处理中）
	public static String TWIDRAPP_STATUS = "18";
	// 融资标的信息表--标的类型
	public static String TFINANCEINFO_TARGETTYPE = "26";
	// 公告信息表--类型
	public static String TNOTICEINFOR_KINDS = "24";
	// 公告信息表--状态
	public static String TNOTICEINFOR_STATUS = "25";
	// 融资审核表--审核结果（一级）
	public static String TFINANCEAUDIT_AUDITRESULTS1 = "2";
	// 融资审核表--审核结果（二级）
	public static String TFINANCEAUDIT_AUDITRESULTS2 = "2";
	// 融资审核表--审核结果（三级）
	public static String TFINANCEAUDIT_AUDITRESULTS3 = "2";
	// 充值--状态(00:发送，01：成功，02：失败)
	public static String TRECHARGE_STATUS = "czzt";
	// 保障方式:(和标的类型相关:信用标的:1;实地标的:2;担保标的:3;)
	public static String SUPPORT_METHODS = "27";
	   //余额贷转出申请表--提现状态
	     public static String TYEDTRANSFEROUT_STATUS="18";
	// 会员信息--邮箱状态（0：没验证，1：验证）
	public static String TMEMBER_EMAILSTATUS = "28";
	// 会员上传资料状态
		public static String TIMAGEINFO_STATUS = "29";
	     
	     
	     
	     
	private static Map<Object, Map<Object, String>> dict = new HashMap<Object, Map<Object, String>>();

	public static Map<Object, String> getDictByType(String type) {
		return dict.get(type);
	}

	public static String getNameById(Object type, String id) {
		Map<Object, String> m = dict.get(type);
		if (m != null)
			return m.get(id);
		else
			return "";
	}

	public static void init(List<Tdictionay> l) {
		for (Tdictionay d : l) {
			String type = d.getId().getType();
			String key = d.getId().getId();
			String value = d.getName();
			Map<Object, String> m = dict.get(type);
			if (m == null) {
				m = new LinkedHashMap<Object, String>();
				dict.put(type, m);
			}
			m.put(key, value);
		}
	}

	public static void addDictType(List<Tdictionarytype> l) {
		Map<Object, String> m = dict.get(TDICTIONAY_TYPE);
		if (m == null) {
			m = new HashMap<Object, String>();
			dict.put(TDICTIONAY_TYPE, m);
		}
		for (Tdictionarytype t : l) {
			m.put(t.getType(), t.getName());
		}
	}

}
